﻿#pragma once
#include "ImageWidget.h"
#include <QMainWindow>
#include <QMap>
#include "camera/camera.h"
#include "calibrator_data.h"
#include "cameracalibrator.h"

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; };
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
	Q_OBJECT

public:
	MainWindow(QWidget* parent = nullptr);
	~MainWindow();
private slots:
	// 选择路径
	void on_toolButton_clicked();
	// 清空文件夹
	void on_pushButton_clicked();
	// 加载内参
	void onLoadButtonClicked();
	// 选择相机
	void on_loadButton_2_clicked();
	// 拍照
	void on_pushButton_2_clicked();
	// 手动选择
	void on_pushButton_3_clicked();
	// 手动选择,删除数据
	void on_pushButton_6_clicked();

	// 读取坐标
	void on_pushButton_4_clicked();

	// 生成标定文件
	void on_pushButton_5_clicked();

	void updateStatusBar(const QString& info);

private:
	bool SaveOldData();
	void ShowData();
private:
	Ui::MainWindow* ui;
	ImageWidget* imageWidget;
	QLabel* statusLabel;

	QString m_savePath;
	QString m_paramPath;
	BDInfo m_current = {};
	QMap<int, BDInfo> m_info;
	Camera* m_camera = nullptr;
	CameraCalibrator m_cal;
};
